<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 数据类型
        // 基本类型 数字, 字符串, 布尔, undefined, null
        let num = 1
        console.log('num', num)
        let food = '西兰花炒蛋'
        console.log('food', food)
        let bool = false
        console.log('bool', bool)
        let empty = undefined
        console.log('empty', empty)
        let empty2 = null
        console.log('empty2', empty2)

        // 复杂类型 对象 数组 函数
        let person = {
            name: 'jack',
            age: 18,
            gender: false,
        }
        console.log('person', person)
        let foods = ['西兰花', '西葫芦', '西红柿', '西瓜', '西北风']
        console.log('foods', foods)
        let sayHi = function () {
            console.log('抹抹大')
        }
        sayHi()

        // let 变量, 可以修改, JS中的变量修改直接赋值, 不限制类型
        person = 'jack'
        console.log('person', person)

        // const 常量, 不可以直接修改常量
        const pi = 3.141592653
        // 下面代码运行时会报错
        // pi = 123
        // 当常量为对象时, 可以修改对象中的属性, 还是不可以使对象指向另一处数据
        const dog = {
            name: '柯基',
            color: '橘黄色',
            foods: ['骨头', '狗粮', '增肌壮骨']
        }
        // 下面代码执行会报错
        // dog = '随便'
        
        // 下面代码不会报错
        dog.color = '绿色'
        console.log(dog)
    </script>
</body>
</html>